package ae.pcfc.cldos.online.common.clddb.domain;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.envers.Audited;


/**
 * The persistent class for the T_CLDOS_PROCESS database table.
 * 
 */
@Entity
@Table(name="T_CLDOS_PROCESS")
@Audited
public class Process implements Serializable {
	private static final long serialVersionUID = 1L;

	public static final String PROCESS_EMPLOYMENT_VISA = "EV";
	public static final String PROCESS_EMPLOYMENT_VISA_RENEWAL = "ER";
	public static final String PROCESS_EMPLOYMENT_VISA_CANCELATION = "ET";
	public static final String PROCESS_VISIT_VISA = "NV";
	public static final String PROCESS_CANCEL_VISIT_VISA = "CV";
	public static final String PROCESS_NOC_LETTERS = "NI";
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="PROCESS_CODE")
	private String processCode;

	@Column(name="PROCESS_DESC")
	private String processDesc;

	@Column(name="PROCESS_DESC_A")
	private String processDescA;

	@Column(name="PROCESS_STATUS")
	private String processStatus;

	//bi-directional many-to-one association to ApplicationAttachment
	@OneToMany(mappedBy="Process")
	private List<ApplicationAttachment> ApplicationAttachments;

	//bi-directional many-to-one association to AppMetaData
	@OneToMany(mappedBy="Process")
	private List<AppMetaData> AppMetaData;

	//bi-directional many-to-one association to ProcessStep
	@OneToMany(mappedBy="Process")
	private List<ProcessStep> ProcessSteps;

	//bi-directional many-to-one association to ProcessStepAction
	@OneToMany(mappedBy="Process")
	private List<ProcessStepAction> ProcessStepActions;

    public Process() {
    }

	public String getProcessCode() {
		return this.processCode;
	}

	public void setProcessCode(String processCode) {
		this.processCode = processCode;
	}

	public String getProcessDesc() {
		return this.processDesc;
	}

	public void setProcessDesc(String processDesc) {
		this.processDesc = processDesc;
	}

	public String getProcessDescA() {
		return this.processDescA;
	}

	public void setProcessDescA(String processDescA) {
		this.processDescA = processDescA;
	}

	public String getProcessStatus() {
		return this.processStatus;
	}

	public void setProcessStatus(String processStatus) {
		this.processStatus = processStatus;
	}

	public List<ApplicationAttachment> getApplicationAttachments() {
		return this.ApplicationAttachments;
	}

	public void setApplicationAttachments(List<ApplicationAttachment> ApplicationAttachments) {
		this.ApplicationAttachments = ApplicationAttachments;
	}
	
	public List<AppMetaData> getAppMetaData() {
		return this.AppMetaData;
	}

	public void setAppMetaData(List<AppMetaData> AppMetaData) {
		this.AppMetaData = AppMetaData;
	}
	
	public List<ProcessStep> getProcessSteps() {
		return this.ProcessSteps;
	}

	public void setProcessSteps(List<ProcessStep> ProcessSteps) {
		this.ProcessSteps = ProcessSteps;
	}
	
	public List<ProcessStepAction> getProcessStepActions() {
		return this.ProcessStepActions;
	}

	public void setProcessStepActions(List<ProcessStepAction> ProcessStepActions) {
		this.ProcessStepActions = ProcessStepActions;
	}
	
}